#include <bits/stdc++.h>
using namespace std;

#define ONLINE_JUDGE

#ifndef ONLINE_JUDGE
#define dbg(x...) { cerr << "\033[32;1m" << #x << " -> "; err(x); }
void err() { cerr << "\033[39;0m" << endl; }
template<typename T, typename... A>
void err(T a, A... x) { cerr << a << ' '; err(x...); }
#else
#define dbg(...)
#endif

typedef long long LL;

const int N = 3e5+10;
int a[N], b[N], c[N];
int n;

int main(int argc, char const *argv[])
{
	int t;
	scanf("%d", &t);
	for (int kk=0; kk<t; ++kk)
	{
		scanf("%d", &n);
		for (int i=0; i<n; ++i)
		{
			scanf("%d", &a[i]);
			b[i] = a[i] - i;
			c[i] = a[i] + i;
		}
		for (int i=1; i<n; ++i)
			b[i] = min(b[i-1], b[i]);
		for (int i=n-2; i>=0; --i)
			c[i] = min(c[i+1], c[i]);
		bool found = false;

		for (int i=0; i<n; ++i)
			dbg(i, a[i], b[i], c[i]);

		for (int i=0; i<n && !found; ++i)
		{
			if (a[i] >= max(i, n-i-1) && c[i] >= n-1 && b[i] >= 0)
			{
				// dbg(i);
				found = true;
				break;
			}
		}
		if (found) puts("Yes");
		else puts("No");
	}
	return 0;
}